package com.prototype.demo.weekLog2;

import com.prototype.demo.weekLog2.WeekLog;

/**
 * Created by Administrator on 2017/6/8.
 * 浅克隆(ShallowClone)和深克隆
 * (DeepClone)。在Java语言中，数据类型分为值类型（基本数据类型）和引用类型，值类型包括
 * int、double、byte、boolean、char等简单数据类型，引用类型包括类、接口、数组等复杂类
 * 型。浅克隆和深克隆的主要区别在于是否支持引用类型的成员变量的复制
 *
 *
 * 使用的浅克隆。因此周报对象复制成功了，但是附件是引用对象类型，复制了内存地址，因此为
 * true  false
 */
public class Client {

    public static void main(String[] args) {
        WeekLog log_previous, log_new;
        log_previous = new WeekLog(); //创建原型对象
        Attachment attachment = new Attachment(); //创建附件对象
        log_previous.setAttachment(attachment); //将附件添加到周报中
        log_new = log_previous.Clone(); //调用克隆方法创建克隆对象
        //比较周报
        System.out.println("周报是否相同？ " + (log_previous == log_new));
        //比较附件
        System.out.println("附件是否相同？ " + (log_previous.getAttachment() == log_new.getAttachment()));
    }
}
